package com.itheima.mapper;

import com.github.pagehelper.Page;
import com.itheima.domain.Menu;
import com.itheima.domain.Menu;

import java.util.List;
import java.util.Set;

public interface MenuMapper {
    //通过角色Id获取对应的菜单
    List<Menu> findByRoleId(Integer roleId);

    //分页查询
    Page<Menu> selectByCondition(String queryString);

    //新增菜单项
    void add(Menu menu);

    //根据id查询菜单项信息
    Menu findById(Integer id);

    //编辑菜单项
    void edit(Menu menu);

    //根据Id查询对应数据的个数
    Integer findByMenuId(Integer id);

    //根据id删除菜单项
    void delete(Integer id);

    //查询所有
    List<Menu> findAll();

    //根据菜单名查询数据库是否该菜单已存在
    Menu findByName(String name);

    //根据菜单path查询数据库是否该菜单已存在
    Menu findByPath(String path);

    //根据菜单id查询关联数据的数量
    Integer findCountByMenuId(Integer menuId);

    //查询所有的菜单排除自己
    List<Menu> findAllExOwn(Integer id);

    //根据菜单id删除中间表数据（清理原有关联关系）
    void deleteRoleIds(Integer id);
}
